package com.neusoft.demo1;

import java.util.Scanner;

/**
 * Java中的数组(Array)
 * 1. 什么是数组? int a = 1;
 *      数组就是一个容器,可以保存多个相同类型的元素。
 * 2. 如何定义数组
 *      基本语法: 数据类型[] 变量名 = new 数据类型[长度];
 *
 * 3. 如何访问数组中的某个元素
 *      变量名[下标]
 *    注意：数组的下标从0开始
 * 4. 如何向数组中添加元素
 *      变量名[下标] = 值;
 *
 * 注意：数组的长度是固定的，一旦定义完无法改变
 */
public class ArrayDemo1 {
    public static void main(String[] args) {
        int[] array = new int[10]; //创建了一个数组，数组中有10个元素，下标从0---9
        System.out.println(array); //引用变量直接输出，会显示内存地址。[I@4554617c
        //向数组中添加元素
        array[0] = 10;
        array[1] = 11;
        array[2] = 12;
        array[3] = 13;
        //array[0] = 15;
        //array[10] = 20; //报错的 ArrayIndexOutOfBoundsException: 10  数组下标越界了
        //如何获取数组中的某个元素
        int num = array[0];
        System.out.println(num);
        //创建一个字符串类型的数组，给数组添加元素，获取数组中的某个元素。
        String[] s = new String[5];
        s[0] = "fender";
        s[1] = "gibson";
        String guitar = s[0];
        System.out.println(guitar);

        System.out.println("------------------------------------------");
        //创建数组的方式
        int[] array1 = {1,2,3,4,5};
        System.out.println(array1[2]);
        System.out.println("------------------------------------------");
        //如何遍历数组
        for (int i = 0;i<array1.length;i++) {
            System.out.println(array1[i]);
        }

        double[] array2 = new double[]{12.5,12.6,12.7,12.8};
        System.out.println(array2[0]);

        System.out.println("------------------------------------------");

        int[] array3 = null; //引用类型默认值为Null
        //System.out.println(array3[0]); //如果没有初始化数组，会出现NullPointerException(空指针异常)

        //定义一个整型数组[23,45,2,14,56,11]计算数组中所有元素的和
        //        Scanner input = new Scanner(System.in);
        //        int[] arr = new int[6];
        //        for (int i = 0;i < 6;i++) {
        //            //int n = input.nextInt();
        //            arr[i] = input.nextInt();;
        //        }
        //        int sum = 0;
        //        for (int i = 0;i<arr.length;i++) {
        //            sum += arr[i];
        //        }
        //        System.out.println(sum);

        //已知数组[12,34,56,1,45,67,25,77,88],找到数组中的最小值。
        //思路：
        // 1. 定义数组
        int[] a = {12,34,56,1,45,67,25,77,88};
        // 2. 可以将数组中的第一个元素作为最小值
        int min = a[0];
        // 3. 遍历数组 初始值从1开始
        for (int i = 1;i < a.length;i++) {
            // 4. 判断 34是否小于最小值，如果条件成立，就将34变成最小值
            if(a[i] < min) {
                min = a[i];
            }
        }
        // 5. 最后输出最小值
        System.out.println(min);
    }


}
